package com.arouter.demo.baselib.router.service;

import android.content.Context;

import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.facade.service.SerializationService;
import com.alibaba.fastjson.JSON;
import com.arouter.demo.baselib.router.RouterPath;

import java.lang.reflect.Type;

/**
 * desc: 如果需要传递自定义对象（ 如实体类，无论是否序列化）,
 * 需要实现 SerializationService，并使用 @Route 注解标注（ 方便用户自行选择序列化方式）
 * 2018-06-01 09:49
 */
// 将此类放在 search module中，SerializationService 为空，原因还么找到
@Route(path = RouterPath.JSON_SERVICE)
public class JsonServiceImpl implements SerializationService {
    @Override
    public <T> T json2Object(String input, Class<T> clazz) {
        return JSON.parseObject(input, clazz);
    }

    @Override
    public String object2Json(Object instance) {
        return JSON.toJSONString(instance);
    }

    @Override
    public <T> T parseObject(String input, Type clazz) {
        return JSON.parseObject(input, clazz);
    }

    @Override
    public void init(Context context) {

    }
}
